The present invention, in some embodiments thereof, relates to computer code parallelization and, more particularly, but not exclusively, to automatic computer code parallelization and evaluation.
In recent years most computing platforms have been converted from a single-core processor to a multi-core processor. As a result, code parallelization implementation becomes a significant burden in the development process, and requires highly skilled programmers.
Some automatic code parallelization platforms were developed to relieve programmers from the manual parallelization process. The quality of automatic code parallelization has improved in the past years. However, fully automatic code parallelization is not yet developed due to the need for complex program analysis and the knowledge of unknown factors, such as input data ranges.